Model GARCH wykorzystywany jest przy modelowaniu i przewidywaniu zmienności w szeregach czasowych. Stosuje się go głównie w analizie finansowej.
Wzór ogólny
\[ GARCH(p, q): \sigma_t^2=\omega+\sum_{i=1}^{p}{\alpha_i\epsilon_{t-i}^2} + \sum_{j=1}^{q}{\beta_j\sigma_{t-j}^2} \]
Najczęściej omawiany przypadek
\[ GARCH(1, 1): \sigma_t^2=\omega+{\alpha\epsilon_{t-1}^2} + {\beta\sigma_{t-1}^2} \]
\(\omega\) - bazowy poziom wariancji warunkowej
\(\alpha\) – współczynnik reakcji na nowe informacje (efekt ARCH)
\(\beta\) – współczynnik pamięci zmienności (efekt GARCH)
\(\epsilon_{t-1}^2\) – kwadrat błędu z kroku \(t-1\)
\(\sigma_{t-1}^2\) – wariancja z kroku \(t-1\)
\[ \text{reszta} = \epsilon_t = \text{predyktowany zwrot} - \text{średni zwrot} \]
\[ \text{standaryzowana reszta} = \frac{\epsilon_t}{\sigma_t} \]
Rozkład normalny (domyślna opcja): "normal"
Rozkład t-Studenta – grube ogony rozkładu: "t"
Skośny rozkład t-Studenta – grube ogony i skośność: "skewt"
Implementacja
Stała średnia (domyślna opcja): "constant"
Zerowa średnia: "zero"
Średnia modelowana jako proces AR: "AR" (np. AR(1), AR(2), …)
Implementacja
… na szacowaną zmienność warunkową
Korelacja między wynikami
| Constant Mean | AR Mean | Zero Mean | |
|---|---|---|---|
| Constant Mean | 1.000000 | 0.999939 | 0.999400 |
| AR Mean | 0.999939 | 1.000000 | 0.999390 |
| Zero Mean | 0.999400 | 0.999390 | 1.000000 |
Model GARCH zakłada, że zmienność reaguje symetrycznie na zdarzenia rynkowe. W praktyce jednak negatywne informacje (np. spadki cen) wywołują silniejszy wzrost zmienności niż pozytywne.
umożliwia większy wpływ negatywnych szoków na zmienność poprzez dodatkowy warunkowy składnik \((\gamma > 0)\)
\[ \sigma^2 = \omega + \sum_{i=1}^p\alpha_i\epsilon_{t-i}^2+\sum_{j=1}^o\gamma_jI_{\{\epsilon_{t-j}<0\}}\epsilon_{t-j}^2+\sum_{k=1}^q\beta_k\sigma_{t-k}^2 \]
Implementacja
\[ \ln\sigma_{t}^{2}=\omega+\sum_{i=1}^{p}\alpha_{i}\left(\left|e_{t-i}\right|-\sqrt{2/\pi}\right)+\sum_{j=1}^{o}\gamma_{j} e_{t-j}+\sum_{k=1}^{q}\beta_{k}\ln\sigma_{t-k}^{2}, \]
gdzie \(e_{t}=\epsilon_{t}/\sigma_{t}\).
wykładniczy GARCH
parametry występujące w modelu nie muszą być dodatnie
Implementacja
… polegają na ciągłym dopasowywaniu i predykowaniu (1. step forward) przyszłości z uwzględnieniem nowych obserwacji.
… czyli poszerzające się okno ruchome
… czyli stałe okno ruchome
library(xts)
library(zoo)
library(rugarch)
aapl <- read.csv('aapl.us.txt', header = TRUE, sep = ",")
aapl_xts <- xts(aapl[, 5], order.by = as.Date(aapl[, 1]))
returns <- diff(log(aapl_xts))
returns <- na.omit(returns)
spec <- ugarchspec(mean.model = list(armaOrder = c(1, 1), include.mean = TRUE),
variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
distribution.model = "norm")
fit <- ugarchfit(spec, returns)
print(fit)
*---------------------------------*
* GARCH Model Fit *
*---------------------------------*
Conditional Variance Dynamics
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model : ARFIMA(1,0,1)
Distribution : norm
Optimal Parameters
------------------------------------
Estimate Std. Error t value Pr(>|t|)
mu 0.001634 0.000247 6.6170 0.000000
ar1 -0.217987 0.203856 -1.0693 0.284926
ma1 0.244830 0.202280 1.2104 0.226143
omega 0.000007 0.000002 3.5380 0.000403
alpha1 0.079135 0.007842 10.0915 0.000000
beta1 0.919864 0.008230 111.7724 0.000000
Robust Standard Errors:
Estimate Std. Error t value Pr(>|t|)
mu 0.001634 0.000288 5.67306 0.000000
ar1 -0.217987 0.122147 -1.78462 0.074323
ma1 0.244830 0.124605 1.96484 0.049433
omega 0.000007 0.000007 0.92872 0.353035
alpha1 0.079135 0.039114 2.02318 0.043055
beta1 0.919864 0.038559 23.85605 0.000000
LogLikelihood : 18812.31
Information Criteria
------------------------------------
Akaike -4.4975
Bayes -4.4925
Shibata -4.4975
Hannan-Quinn -4.4958
Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
statistic p-value
Lag[1] 0.08462 7.711e-01
Lag[2*(p+q)+(p+q)-1][5] 6.06310 6.024e-05
Lag[4*(p+q)+(p+q)-1][9] 9.40944 1.630e-02
d.o.f=2
H0 : No serial correlation
Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
statistic p-value
Lag[1] 0.7036 0.4016
Lag[2*(p+q)+(p+q)-1][5] 1.1845 0.8167
Lag[4*(p+q)+(p+q)-1][9] 1.7593 0.9317
d.o.f=2
Weighted ARCH LM Tests
------------------------------------
Statistic Shape Scale P-Value
ARCH Lag[3] 0.3134 0.500 2.000 0.5756
ARCH Lag[5] 0.8977 1.440 1.667 0.7635
ARCH Lag[7] 1.3226 2.315 1.543 0.8561
Nyblom stability test
------------------------------------
Joint Statistic: 2.369
Individual Statistics:
mu 0.1320
ar1 0.6277
ma1 0.6344
omega 0.9453
alpha1 0.5537
beta1 0.9312
Asymptotic Critical Values (10% 5% 1%)
Joint Statistic: 1.49 1.68 2.12
Individual Statistic: 0.35 0.47 0.75
Sign Bias Test
------------------------------------
t-value prob sig
Sign Bias 2.3545 0.018573 **
Negative Sign Bias 0.8243 0.409773
Positive Sign Bias 3.1516 0.001630 ***
Joint Effect 12.7183 0.005287 ***
Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
group statistic p-value(g-1)
1 20 347.0 4.187e-62
2 30 370.3 7.309e-61
3 40 388.3 4.108e-59
4 50 438.4 5.880e-64
Elapsed time : 0.5316429
https://bookdown.org/compfinezbook/introcompfinr/maximum-likelihood-estimation.html
QUASI-MAXIMUM LIKELIHOOD ESTIMATION AND INFERENCE IN DYNAMIC MODELS WITH TIME-VARYING COVARIANCES https://public.econ.duke.edu/~boller/Published_Papers/ectrev_92.pdf